Method of transporting data with embedded clock

ABSTRACT

A method for transporting data with embedded information is provided. The method is adapted to a data transmission interface for coding an original data and then transporting thereof, including: packing the original data, wherein every N bits form a packet, and N is an integer of at least 4; analyzing whether or not existing a long-run length of long-run data with consecutive same bit data in the packet, wherein when the long-run length is greater than a predetermined length, bit data with a predetermined bit length after an L th  bit of the long-run data is toggled; coding the packet to embed a coding information, wherein the coding information determines whether or not the long-run data has been toggled; and transporting the coded packet.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation application of and claims thepriority benefit of a prior application Ser. No. 13/555,194, filed onJul. 23, 2012, now pending. The prior application Ser. No. 13/555,194claims the priority benefit of Taiwan application serial no. 100143741,filed on Nov. 29, 2011. The entirety of each of the above-mentionedpatent applications is hereby incorporated by reference herein and madea part of this specification

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to a data packet transporting method.Particularly, the invention relates to a method for transporting datawith embedded clock.

2. Description of Related Art

Data transmission is indispensable in operations of electronic products.Regarding a digital display panel, for example, a thin-film transistorliquid crystal display (TFT-LCD) panel, a required data rate of a datatransmission interface (reduced swing differential signalling (RSDS) ormini-low-voltage differential signalling (LVDS)) commonly used by atiming controller (TCON) and a source driver of the TFT-LCD panel is farbeyond a load level of the current data transmission interface due tovarious new applications such as solution of motion blur under 120 Hz orthree-dimensional (3D) display under 240 Hz, or demand for a slimborder. A direct solution is to increase the number of channels in theinterface. FIG. 1 is a schematic diagram of a conventional datatransmission structure. Referring to FIG. 1, a TCON 100 transmitssignals to each of source drivers (D-IC) 106 in a parallel mannerthrough a bus containing data lines 104 and a clock line 102. As aresult, electromagnetic interference (EMI) is aggravated, and the demandfor slim border cannot be achieved, and even the cost is increased.Therefore, to modify a transmission technique of the interface toincrease the data rate of a single channel is obviously a more practicalsolution.

In a commonly used high-speed serial interface, a clock embedded methodis generally used to remove a skew of a clock channel and a datachannel, and a point-to-point bus structure is used, as that shown inFIG. 2. FIG. 2 is a schematic diagram of a conventional point-to-pointdata transmission structure. Referring to FIG. 2, a TCON 120 isconnected to each of the source drivers (D-IC) 122 in the point-to-pointmanner, where a clock signal is embedded in transmitted data, so that itis unnecessary to use an extra clock line. Such method can reduce losscaused by wiring on a substrate due to a matching problem. Regarding theclock embedded technique, a coding method having a direct current (DC)balance and a run length limited characteristics is used to codeoriginal data, and such two characteristics facilitate a receiver toeasily extract a correct clock phase and frequency, so as to obtain thecorrect original data. For example, 8b/10b, 4b/5b, . . . , etc. are allbelong to such coding method. A main principle thereof is that a codeddata string has almost the same appearance rate (the DC balance) of 0and 1, and the number of consecutive appearance of 0 or 1 is ensured tobe smaller than a fixed value (the run length limited), though a certainamount of redundancy has to be added, for example, a coding efficiency(CE) of 8b/10b is 0.8, which represents that every 10 coded data bitsonly includes the original data of 8 bits, i.e. 2 bits are redundancy oroverhead, the clock embedded method using the coding manner has beenwidely used in various applications.

FIG. 3 is a schematic diagram of a circuit structure for transmittingdata by using a conventional 8b/10b coding mechanism. Referring to FIG.3, parallel data is received by an 8b/10b encoder 130 for an 8b/10bcoding. A parallel to serial converter 132 converts coded parallel datainto serial data, and the serial data is transmitted through atransmitter 134. FIG. 4 is a schematic diagram of a circuit structurefor receiving data by using the conventional 8b/10b coding mechanism.Referring to FIG. 4, a receiver 136 receives the 8b/10b-coded data, anda serial to parallel converter 138 is first used to convert the serialdata into parallel data, and the conversion process is implemented incollaboration with operations of a phase/frequency comparator 142, a lowpass filter (LPF) 144 and a voltage-controlled oscillator (VCO) 146. Theconverted parallel data is then decoded by an 8b/10b decoder 140 toobtain the original parallel data.

Although the clock embedded method using the coding manner can achieve ahigher data rate, hardware cost and power consumption thereof areobviously increased.

SUMMARY OF THE INVENTION

Accordingly, the invention is directed to a method for transporting datawith embedded clock, which has high coding/decoding efficiency andmaintains a condition required by high-speed transmission.

The invention provides a method for transporting data with embeddedinformation. The method is adapted to a data transmission interface forcoding an original data and then transporting thereof, including:packing the original data, wherein every N bits form a packet, and N isan integer of at least 4; analyzing whether or not existing a long-runlength of long-run data with consecutive same bit data in the packet,wherein when the long-run length is greater than a predetermined length,bit data with a predetermined bit length of the long-run data istoggled; coding the packet to embed a coding information, wherein thecoding information determines whether or not the long-run data has beentoggled; and transporting the coded packet.

The invention provides a method for transporting data with embeddedinformation, which is adapted to a data transmission interface andincludes following steps. Original data is received. Then, the originaldata is packed, where every N bits form a packet, and N is an integer ofat least 4. The N bits of each of the packets are divided into aplurality of segments of data. A coding index is inserted between twoadjacent segments of data, where the coding index is used to breakconsecutive same bits of the two adjacent segments of data that exceed alength of one segment of data.

The invention provides a method for decoding a received data packet,adapt to a data receiving interface. The method includes: determining anembedded information carried by the received data packet, so as todetermine whether or not a part of bit data of the received data packetwith a predetermined bit length has been toggled; toggling the part ofbit data of the received data packet when the embedded informationindicates that the part of the bit data has been toggled; and removingthe embedded information.

In order to make the aforementioned and other features and advantages ofthe invention comprehensible, several exemplary embodiments accompaniedwith figures are described in detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are included to provide a furtherunderstanding of the invention, and are incorporated in and constitute apart of this specification. The drawings illustrate embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention.

FIG. 1 is a schematic diagram of a conventional data transmissionstructure.

FIG. 2 is a schematic diagram of a conventional point-to-point datatransmission structure.

FIG. 3 is a schematic diagram of a circuit structure for transmittingdata by using a conventional 8b/10b coding mechanism.

FIG. 4 is a schematic diagram of a circuit structure for receiving databy using the conventional 8b/10b coding mechanism.

FIG. 5 is a structural schematic diagram of a data packet according toan embodiment of the invention.

FIGS. 6A-6B are schematic diagrams illustrating a toggle mechanism ofpacket data with M=2 and K=4 according to an embodiment of theinvention.

FIGS. 7A-7B are schematic diagrams illustrating a toggle mechanism ofpacket data with M=2 and K=2, 3, 4 according to an embodiment of theinvention.

FIGS. 8A-8B are schematic diagrams illustrating a toggle mechanism ofthe packet data with M=2 and K=4 according to an embodiment of theinvention.

FIGS. 9A-9B are schematic diagrams illustrating a toggle mechanism ofthe packet data with M=2 and K=1 according to an embodiment of theinvention.

FIGS. 10A-10B are schematic diagrams illustrating a toggle mechanism ofpacket data with M=2 and K=2 according to an embodiment of theinvention.

FIG. 11 is a flowchart illustrating a coding algorithm flow of a clockembedded method according to an embodiment of the invention.

FIG. 12 is a flowchart illustrating a decoding algorithm flow of a clockembedded method according to an embodiment of the invention.

FIG. 13 is a schematic diagram of a clock and data coding transmissioncircuit according to an embodiment of the invention.

FIG. 14 is a schematic diagram of a clock and data decoding transmissioncircuit according to an embodiment of the invention.

FIGS. 15A-25B are schematic diagrams illustrating a packet data codingmechanism according to a plurality of embodiments of the invention.

DETAILED DESCRIPTION OF DISCLOSED EMBODIMENTS

The invention provides a novel clock embedded method, by which besidesdata transmission with embedded clock is implemented, data erroroccurred during transmission of long-run data with same bit data isreduced.

Embodiments are provided below to describe the invention in detail,though the invention is not limited to the provided embodiments, and theprovided embodiments can be suitably combined.

FIG. 5 is a structural schematic diagram of a data packet according toan embodiment of the invention. Referring to FIG. 5, the packet includesa data area 202 and a header 200 of original data D₀, D₁, . . . ,D_(N-1). The data area 202 has N bits, where N is any integer and N≧4.The header 200 in the front has M bits, and in the present embodiment,M=2. The header 200 is a clock & toggle index (CTI), which is alsoreferred to as clock/toggle index. Therefore, the packet includes N+2bits. In the present embodiment, CTI has two values [01] and [10]representing two possibilities, and variation of 0/1 represents clockinformation. However, if M is greater than 2, the CTI has more otherdefinitions. [01] or [10] represents whether the original data D₀, D₁, .. . , D_(N-1) has long-run data with same bit data and having a long-runlength greater than N/2. The long-run data with same bit data refers toconsecutive 1 or 0. When the original data is complied with suchcondition, a coding step is performed to toggle K bits at the back ofthe N/2 consecutive 0 or 1, i.e. 0 is toggled to 1 or 1 is toggled to 0.A range of the value K is, for example, 0≦K≦N/2. When a CTI value [10]is inversed to a predetermined value [01], it represents that theoriginal data in the data area 202 has the long-run data with same bitdata, and the long-run length is greater than N/2, i.e. the originaldata is toggled. Conversely, if there is none N/2 consecutive 1 or 0,the CTI is defined to the predetermined value.

FIGS. 6A-6B are schematic diagrams illustrating a toggle mechanism ofpacket data with M=2 and K=4 according to an embodiment of theinvention. Referring to FIG. 6A, the original data of the presentembodiment, for example, has eight bits, i.e. N=8, and it is assumedthat the consecutive 8 bits of the original data are all 0. Now, areference voltage level is continually decreased to cause data error. Toavoid the data error, a part of the original data has to be coded, forexample, toggled to 1. Referring to FIG. 6B, regarding a coding methodof K=4 and N/2=4, 4 bits after a 4^(th) bit of the original data aretoggled. Since bit data of the original data are all 0, and the toggledbit data is 1, in FIG. 6B, 1* is used to indicate the difference therebetween. Therefore, the coded data of the data area 202 is toggled. Theheader 200 is [10], which represents that the data has been toggled.Here, it is assumed that the predetermined value is [01].

FIGS. 7A-7B are schematic diagrams illustrating a toggle mechanism ofthe packet data with M=2 and K=2, 3, 4 according to an embodiment of theinvention.

Referring to FIG. 7A, the original data is, for example, [10111110],which includes five consecutive 1. Referring to FIG. 7B, according tothe same coding principle, since the original data has the long-run datawith same bit data of 5 consecutive 1, the CTI value of the header 200is embedded with [10]. In the data area 202, K bits after a 4^(th) bitof the long-run data with the same bit data are toggled, and in thepresent embodiment, K=2. However, when K is 3 or 4, since the range ofN=8 is overstepped, descriptions thereof are omitted, the coded data ofthe present embodiment is the same.

FIGS. 8A-8B are schematic diagrams illustrating a toggle mechanism ofthe packet data with M=2 and K=4 according to an embodiment of theinvention. Referring to FIG. 8A, the original data is, for example,[10111001], and a situation of more than four consecutive 1 or 0 is notappeared. Referring to FIG. 8B, the CTI value of the header 200 of thecoded data is the predetermined value [01]. Although K=4, the originaldata is not toggled.

FIGS. 9A-9B are schematic diagrams illustrating a toggle mechanism ofthe packet data with M=2 and K=1 according to an embodiment of theinvention. Referring to FIG. 9A, the predetermined value of the CTIvalue of the header 200 is [10], and the CTI value corresponding to thetoggle operation is [01], and it is assumed that the coding condition isK=1. The original data is, for example, [00000001], which has 7consecutive 0, so that it is required to be toggled. Referring to FIG.9B, in this case, the CTI value of the header 200 is embedded with [01]inversed to the predetermined value [10], and the 5^(th) bit at 0 istoggled to 1.

FIGS. 10A-10B are schematic diagrams illustrating a toggle mechanism ofthe packet data with M=2 and K=2 according to an embodiment of theinvention.

Referring to FIG. 10A, the original data is, for example, [01111110],which has 6 consecutive 1, so that it is required to be toggled.Referring to FIG. 10B, the CTI value of the header 200 is embedded with[01] inversed to the predetermined value [10], and the 5^(th)-6^(th)bits at 1 are toggled to 0.

Here, the number of bits of the header 200 is, for example, M=2, thoughthe number can be greater than 2 to define more coding methods.Moreover, in the aforementioned embodiments, the CTI value is embeddedin the header of the data area 202. However, it can also be embedded atthe tail of the data area 202.

FIG. 11 is a flowchart illustrating a coding algorithm flow of a clockembedded method according to an embodiment of the invention. Referringto FIG. 11, according to the aforementioned coding mechanism, the codingflow is described as follows. Before the coding operation, values of N,M, K and CTI are first defined. In step S100, data is input. In stepS102, every N bits of the data are packed to form a packet. In stepS104, a data length of long-run data with consecutive same bit data inthe original bit data of the packet is calculated. In step S106, it isdetermined whether the data length is greater than N/2. If the datalength is greater than N/2, in step S108, the header is embedded to thepacket, and the CTI value of the header is set to be different to thepredetermined value, for example, [10], and the data is toggledaccording to the K value to end the coding process. If the data lengthis not greater than N/2 according to the step S106, in step S110, theheader is embedded to the packet, and the CTI value of the header is setto the predetermined value, for example, [01], and the coding process isended.

FIG. 12 is a flowchart illustrating a decoding algorithm flow of a clockembedded method according to an embodiment of the invention. Referringto FIG. 12, in step S120, the coded packet data is received. In stepS122, information of the header is determined. In step S124, if thetoggle operation is required, a step S126 is executed, and if toggleoperation is not required, a step S128 is executed. In the step S126,the header is removed, and the data is toggled for restoring to theoriginal data according to the K value, and the decoding operation isended. In the step S128, the header is removed to end the decodingoperation.

Regarding a hardware circuit, FIG. 13 is a schematic diagram of a clockand data coding transmission circuit according to an embodiment of theinvention. Referring to FIG. 13, the original data is input to anencoder 150, and the encoder 150 codes the original data according tothe aforementioned packet coding mechanism. The coded packet isconverted to serial data by a parallel to serial converter 152, and theserial data is transmitted through a transmitting driver 154.

FIG. 14 is a schematic diagram of a clock and data decoding transmissioncircuit according to an embodiment of the invention. Referring to FIG.14, regarding a data restoring method based on a circuit structure, adriver 160 receives the coded packet data, and a decoder 162 decodes thecoded packet data to obtain the original data and extract a clocksignal. However, the restored original data still has a format of serialdata, so that a serial to parallel converter 164 is used to convert therestored original data to parallel data, so as to match a subsequentdata transmission specification.

Regarding data coding, the invention provides a novel coding method, anda hardware circuit is accordingly simplified.

The invention is not limited to the aforementioned data coding method,and embodiments for coding data are provided below.

According to another clock embedded method, one or a plurality of bitscan be inserted to break the multiple consecutive 0 or 1, which isdescribed below.

FIGS. 15A-25B are schematic diagrams illustrating a packet data codingmechanism according to a plurality of embodiments of the invention.

Referring to FIG. 14A, the original data of the packet is represented byD_(o), D₁, . . . , D_(N-1), and N is any integer. The original dataD_(o), D₁, . . . , D_(N-1) is divided into S segments of data, where Sis an integer, and clock information of [01] or [10] is added to thefront of the data, and a coding index (CI) is added between each twoadjacent segments of data, for example, CI₁ to CI_(S) are added, and CIis bit data of [0] or [1]. It is determined whether every two adjacentsegments of the data packet have consecutive same bits that exceed alength of N/S, i.e. a run length of the consecutive 1 or 0. When theoriginal data matches the above condition, for example, consecutive 1 isappeared, 0 is inserted to the back of each segment of data, forexample, 0 is inserted behind every N/S bits. Otherwise, 1 is inserted.

An embodiment is provided below for description, referring to FIG. 16A,a bit length of the original data and a number of the divided segmentsare, for example, N=8 and S=2, and data of 8 consecutive 1 is taken asan example. Referring to FIG. 16B, the packet of the coded original datais changed to [111101111], where after 4 bits, i.e. after 8/2=4 bits,the CI of 0 is inserted to break the 8 consecutive 1.

Referring to FIG. 17A for another embodiment, the original data is[11000001], where N=8 and S=2. Referring to FIG. 17B, the packet of thecoded original data is changed to [110010001], where the inserted CI is1, which is used to break the 5 consecutive 0.

Referring to FIG. 18A for another embodiment, the original data is[01001001], where N=8 and S=2. Referring to FIG. 18B, the packet of thecoded original data is changed to [0100*1001], where the CI is *, whichrepresents that the CI can be 1 or 0 since a situation of more than fourconsecutive same bits is not appeared, and the original data is notrequired to be broken, so that either 0 or 1 can be inserted.

Referring to FIG. 19 for another embodiment, the original data is[11111111], where N=8 and S=4. In this embodiment, the packet of thecoded original data is changed to [11011011011]. Since the data isdivided into 4 segments, every two bits has one CI. In this embodiment,the values of the CIs are all 0. The CI can be 1 or 0 if a length of theconsecutive same bits does not exceed a length of one segment.

Referring to FIG. 20A for another embodiment, the original data is[00011000], where N=8 and S=4. Referring to FIG. 20B, the packet of thecoded original data is changed to [00101*10100], in which CI₁₋₃ arerespectively [1], [*] and [1], where * represents that the CI can be 1or 0.

A novel clock embedded method can be deduced according to theaforementioned two methods, which is described as follows.

The original data of the packet is represented by D₀, D₁, . . . ,D_(N-1), and N is any integer. According to the coding method shown inFIGS. 15-20, the original data is divided into L segments, so that [0]or [1] is inserted behind every N/L bits, where L is an integer. Thefront M bits (for example, M=2) are coding index. Referring to FIG. 21A,in case of a combined coding method, for example, L=2, the data isdivided into two groups, i.e. a group A and a group B. The front CI_(A)is the coding index. The front N/3 bits are taken as the group A, andthe other bits are taken as the group B, and Cl_(B) is inserted betweenthe group A and the group B. It is determined whether the data hasconsecutive same bits that exceed a length of N/S, i.e. a run length ofthe consecutive 1 or 0, so as to determine the value of CI_(B). Thegroup B is processed according to the toggle mechanism of FIGS. 7A-10B.Generally, referring to FIG. 21B, the data can be divided into L groups.CI is inserted to the front of each group of data,

where CI₁ is used for data coding, and the remained (L−1) groups arecoded according to the data toggle method.

Referring to FIG. 22A for another embodiment, where N=12 and L=2, anddata with 12 consecutive 1 is taken as an example. Referring to FIG.22B, the packet of the coded data is changed to [1111011110000], inwhich CI₁ is [10] and CI₂ is [0] to break the data with consecutive 1.Regarding the second group of data after the first group, according tothe toggle method, the last 4 bits are toggled to 0, where * refers tothat the bit is toggled.

Referring to FIG. 23A for another embodiment, the original data is[100000111000], where N=12 and L=3. Referring to FIG. 23B, the packet ofthe coded original data is changed to [1000100111000], in which CI₁ is[01] and CI₂ is [0].

Referring to FIG. 24A for another embodiment, the original data is[100011111100], where N=12 and L=3. Referring to FIG. 24B, the packet ofthe coded original data is changed to [1000*11110011], in which CI₁ is[10] and CI₂ is [*], which can be 1 or 0. Here, the second group of dataafter the first group of data is complied with the toggle condition, sothat this group of data is toggled, and [10] of CI₁ represents that thedata is toggled.

Referring to FIG. 25A for another embodiment, the original data is[001110110101], where N=12 and L=3. Referring to FIG. 25B, the packet ofthe coded original data is changed to [0011*10110101], in which CI₁ is[01] and CI₂ is [*], which can be 1 or 0. Here, [01] of CI_(I)represents that the data is not toggled.

The invention provides several method for coding data, and besides thetoggle mechanism and the insertion mechanism are used, the two methodscan be combined. In case of the combined mode, data can be divided intoa plurality of groups, where some groups apply the insertion mechanism,and the others apply the toggle mechanism.

It will be apparent to those skilled in the art that variousmodifications and variations can be made to the structure of theinvention without departing from the scope or spirit of the invention.In view of the foregoing, it is intended that the invention covermodifications and variations of this invention provided they fall withinthe scope of the following claims and their equivalents.

1. A method for transporting data with embedded information, adapted toa data transmission interface for coding an original data and thentransporting thereof, comprising: packing the original data, whereinevery N bits form a packet, and N is an integer of at least 4; analyzingwhether or not existing a long-run length of long-run data withconsecutive same bit data in the packet, wherein when the long-runlength is greater than a predetermined length, bit data with apredetermined bit length of the long-run data is toggled; coding thepacket to embed a coding information, wherein the coding informationdetermines whether or not the long-run data has been toggled; andtransporting the coded packet.
 2. The method for transporting data withembedded information as claimed in claim 1, wherein an appearancefrequency of the coding information serves as clock information.
 3. Themethod for transporting data with embedded information as claimed inclaim 1, wherein the long-run length is N/2.
 4. The method fortransporting data with embedded information as claimed in claim 1,wherein a bit length of the coding information is two bits, and thepredetermined bit length for toggle is at least one bit.
 5. The methodfor transporting data with embedded information as claimed in claim 1,wherein when the predetermined bit length after an L^(th) bit exceedsthe packet, an exceeding part is neglected.
 6. A method for transportingdata with an embedded information, which is adapted to a datatransmission interface for coding an original data and then transportingthereof, and comprising: packing the original data, wherein every N bitsform a packet, and N is an integer of at least 4; dividing the N bits ofthe packet into a plurality of segments of data; inserting a codingindex between each two adjacent segments of data, wherein the codingindex is used to break consecutive same bits of the two adjacentsegments of data that exceed a length of one segment of data.
 7. Amethod for decoding a received data packet, adapt to a data receivinginterface, comprising: determining whether or not an embeddedinformation carried by the received data packet, so as to determinewhether or not a part of bit data of the received data packet with apredetermined bit length has been toggled; toggling the part of bit dataof the received data packet when the embedded information indicates thatthe part of the bit data has been toggled; and removing the embeddedinformation.
 8. The method for decoding the received data packet asclaimed in claim 7, wherein the embedded information is a header.